<?php
/**
 * APIJSON 配置文件
 */
return [
    // 是否启用 @whereRaw 操作符
    'enable_where_raw' => env('APIJSON_ENABLE_WHERE_RAW', true),
    
    // 是否启用严格模式（只允许白名单函数）
    'strict_where_raw' => env('APIJSON_STRICT_WHERE_RAW', true),
    
    // 是否启用 SQL 日志
    'show_sql' => env('APIJSON_SHOW_SQL', false),
    
    // SQL 表达式最大长度
    'max_expression_length' => env('APIJSON_MAX_EXPRESSION_LENGTH', 1000),
    
    // 绑定参数最大长度
    'max_binding_length' => env('APIJSON_MAX_BINDING_LENGTH', 255),
    
    // 允许的 SQL 函数白名单（可以自定义）
    'allowed_functions' => [
        'FIND_IN_SET',
        'JSON_CONTAINS',
        'JSON_EXTRACT',
        'DATE_FORMAT',
        'YEAR',
        'MONTH',
        'DAY',
        'HOUR',
        'MINUTE',
        'SECOND',
        'DATEDIFF',
        'TIMESTAMPDIFF',
        'ST_Distance_Sphere',
        'ST_Distance',
        'MATCH',
        'AGAINST',
        'CONCAT',
        'SUBSTRING',
        'LENGTH',
        'UPPER',
        'LOWER',
        'TRIM',
        'REPLACE',
        'ROUND',
        'CEIL',
        'FLOOR',
        'ABS',
        'MOD',
        'POW',
        'SQRT',
        'COUNT',
        'SUM',
        'AVG',
        'MIN',
        'MAX'
    ],
    
    // 危险关键词黑名单（精确匹配，避免误判）
    'dangerous_keywords' => [
        'DROP', 'DELETE', 'INSERT', 'UPDATE', 'ALTER', 'CREATE',
        'TRUNCATE', 'EXEC', 'EXECUTE', 'UNION',
        'INFORMATION_SCHEMA', 'SYS', 'MYSQL', 'PERFORMANCE_SCHEMA',
        'SHOW', 'DESCRIBE', 'EXPLAIN', 'GRANT', 'REVOKE',
        'LOAD_FILE', 'INTO OUTFILE', 'INTO DUMPFILE', 'LOAD DATA',
        'SLEEP', 'BENCHMARK', 'WAITFOR', 'DELAY', 'PG_SLEEP',
        'CHR', 'CHAR', 'ASCII', 'ORD', 'HEX', 'UNHEX',
        'CONVERT', 'CAST', 'CONCAT_WS', 'GROUP_CONCAT',
        'VERSION', 'USER', 'DATABASE', 'SCHEMA', 'TABLE_NAME',
        'COLUMN_NAME', 'INDEX_NAME', 'CONSTRAINT_NAME'
    ],
    
    // 允许的表名白名单（可选）
    'allowed_tables' => [
        // 可以在这里配置允许查询的表名
        // 如果不配置或为空，则允许所有表
    ],
    
    // 禁止的表名黑名单
    'forbidden_tables' => [
        'information_schema',
        'mysql',
        'performance_schema',
        'sys',
        'pg_catalog',
        'pg_statistics'
    ],
    
    // 安全配置
    'security' => [
        // 是否启用 IP 白名单
        'enable_ip_whitelist' => false,
        'allowed_ips' => [],
        
        // 是否启用 API 密钥验证
        'enable_api_key' => false,
        'api_key_header' => 'X-API-Key',
        
        // 是否启用请求频率限制
        'enable_rate_limit' => false,
        'rate_limit_requests' => 100,
        'rate_limit_period' => 60, // 秒
        
        // 是否启用请求日志
        'enable_request_log' => true,
        'log_dangerous_requests' => true
    ]
];